package com.xcity.db.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.xcity.db.entity.Player;
import com.xcity.game.map.Locatable;

import naga.x.db.IMapper;

public interface PlayerMapper extends IMapper<Player> {
	
//	String STATEMENT_FIND_ACTOR = PlayerMapper.class.getName() + ".findActor";
//	String STATEMENT_FIND_BY_RANKING = PlayerMapper.class.getName() + ".findActorByRanking";
//	String STATEMENT_SYNC = PlayerMapper.class.getName() + ".syncActor";
//	String STATEMENT_FIND_ACTOR_LIMIT = PlayerMapper.class.getName() + ".findActorLimit";
//	String STATEMENT_LIST_ACTORS_BY_LEVEL = PlayerMapper.class.getName() + ".listActorsByLevel";
//	String STATEMENT_LIST_ACTORS_BY_ASSETS_RANKING = PlayerMapper.class.getName() + ".listActorsByAssetsRanking";
	String STATEMENT_FIND_BY_MAP = PlayerMapper.class.getName() + ".findByMap";
//	@Deprecated
//	String STATEMENT_FIND_STEAL_TARGETS = PlayerMapper.class.getName() + ".findStealTargets";
	@Deprecated
	String STATEMENT_FIND_ADVENTURE_TARGETS = PlayerMapper.class.getName() + ".findAdventureTargets";
	String STATEMENT_FIND_ADVENTURE_TARGET_IDS = PlayerMapper.class.getName() + ".findAdventureTargetIds";
	
//	Actor findActor(long id);
//	
//	/**
//	 * 查找排名前count位的玩家
//	 * @param count
//	 * @return
//	 */
//	List<Actor> findActorByRanking(int count);
//	int syncActor(Actor actor);
//	
//	List<Actor> findActorLimit(@Param("fromId") long fromId, @Param("count") int count);
//	
//	/**
//	 * 查找等级排行前count位的玩家
//	 * @param count
//	 * @return
//	 */
//	List<Actor> listActorsByLevel(int count);
//	
//	List<Actor> listActorsByVipLevel(int count);
//	
//	List<Actor> listActorsByAssetsRanking(@Param("province")String province, @Param("count")int count);
	
	List<Locatable> findByMap(@Param("map")int map, @Param("level")int level);
	
//	@Deprecated
//	List<ActionTarget> findStealTargets(@Param("goldMin")long goldMin, @Param("goldMax")long goldMax, @Param("count")int count);
//	
//	List<Actor> findAdventureTargets(@Param("minLevel") int minLevel, @Param("maxLevel") int maxLevel, @Param("count") int count);
	
	@Deprecated
	List<Player> findAdventureTargets(@Param("minLevel") int minLevel, @Param("maxLevel") int maxLevel, @Param("count") int count);
	
	List<Long> findAdventureTargetIds(@Param("minLevel") int minLevel, @Param("maxLevel") int maxLevel, @Param("count") int count);
}
